#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>

int main()
{
//测试进程R+
//	while(1)
//	{
//	   sleep(1);
//	   printf("hello lcx!\n");
//	}



//测试进程S+
//	printf("我是一个进程！我的PID是：%d\n",getpid());
//	int x;
//	scanf("%d",&x);


//测试T/t状态
//	printf("我是一个进程，PID：%d\n",getpid());
//	while(1)
//	{
//	    printf("hello lcx!\n");
//	}



//测试僵尸进程
//	pid_t id = fork();
//	if(id==0)
//	{
//	   //child
//	   int count =5;
//	   while(count)
//	   {
//		printf("我是一个子进程，我在运行:%d\n",count);
//		sleep(1);
//		count--;      //执行结束就会return
//	   }
//	}
//
//	else
//	{
//	    while(1)
//	    {
//		printf("我是父进程，我在运行...\n");
//	    	sleep(1);
//	    }
//	}



//测试孤儿进程
	pid_t id=fork();
	if(id==0)
	{
	   //child
	   while(1)
	   {
		printf("我是一个子进程，我的PID是：%d，我的PPID是：%d\n",getpid(),getppid());
	   	sleep(1);
	   }
	}
//对于子进程来讲  执行完if就会跳转到 return
	
	else
	{
	   //parent
	   int count = 5;
	   while(count)
	   {
		printf("我是父进程，我的PID是：%d，我的PPID是：%d\n",getpid(),getppid());
		sleep(1);
		count--;
	   }
	}
//对于父进程来说  执行完else就会跳转到 return

	return 0;
}
